package com.jswzc.pay.service.balanceService;

import java.util.Map;

/**
 * Created by qziwm on 2017/6/6.
 */
public interface BalanceServiceI {
    /**
     * 用户的久零贝操作接口
     * @param  map
     * userId:用户id，base_user表的id
     * state:1：收入，2：支出，0：未知
     * orderNum:支出：订单号/提现流水号等，收入：充值流水号/充值卡卡号等
     * source:来源/用途：1：充值，2：购买商品，3：发放久零券赠送 4:退款 5提现 6提现失败回退久零贝 7撤销发券退回赠送的久零贝
     * amount:金额数量，单位元
     * @return map
     * flag:返回状态判断 0操作成功 1操作失败2余额不足3重复调用
     * msg:文字描述，如果是操作失败的，失败原因
     * needMoney:仅限购买商品的时候出现，为还需要支付多少现金，单位元(全久零贝支付体系的基础下，此条目前肯定是0)
     * **/
    Map<String,Object> operUserCoin90(Map<String, Object> map) throws Exception;


    /**
     * 用户的久零券操作的新接口方法
     * @param  map
     * brand_code:商户id，没有留空字符串
     * shop_code:店铺id，没有留空字符串
     * user_code:营业员id，没有留空字符串
     * order_code:订单号/流水号/实体卡卡号，发券撤回的时候填写base_90_detail表这条记录的id
     * open_id:	用户openid
     * type:发券终端 0pos机1qt2微商城3远程发券4实体卡5旧数据导入
     * source:类型0:充值；1:自动发券；2人工发券；3消券;4 久零券充值卡 5 用户退款 6首次关注加积分 ,8活动增加券（签到，大转盘） 9 手动发券撤回 10 自动发券/实体卡撤回
     * source_msg:	备注，比如：用户签到，用户体验店消费，用户充值等，无具体内容限制
     * balance_90:久零券额，单位分
     * state:用户收入就是2，用户支出就是1
     * commission:自动发券久零佣金百分点，没有写0
     * tradeType:自动发券支付类型 RECHARGE 储值卡主扫 MICROPAY 微信被扫 NATIVE 微信主扫 JSAPI 微信主扫 OFFLINE 现金支付 ZFB-MICROPAY 支付宝被扫 ZFB-NATIVE 支付宝主扫 ZFB-JSAPI 支付宝主扫 YZF-MICROPAY 翼支付被扫 UNIONPAY 银行卡支付 ROB 非店小翼平台支付
     * orderState:自动发券订单状态 0:未生效1:交易成功2:错误3:已退款 ，没有写1
     * orderTotal:自动发券订单金额，单位分，没有写0
     * **/
    Map<String,Object> updateUserBalance90(Map<String, Object> map)throws Exception;

/**
 * 商户余额操作的接口方法
 * @param  map
 * state 0收入1支出
 * source：0充值1发券消费
 * merchantId：商户id
 * balance：金额，元
 * */
    Map<String,Object> updateMerchantBalance(Map<String, Object> map)throws Exception;
}
